type strNum = string | number


/**
 *
 * @params a number
 * @params b number
 * @return number
 * @description 得到相加的内容
 */
function combine(a: number, b: number): number
/**
 *
 * @param a string
 * @param b string
 * @return string
 * @description 得到拼接的内容
 */
function combine(a: string, b: string): string
function combine(a: strNum, b: strNum): strNum {
  if (typeof a == 'number' && typeof b == 'number') {
    return a + b
  } else if (typeof a == 'string' && typeof b == 'string') {
    return a + b
  }
  throw new Error('a和b必须是相同的类型')
}

const result = combine(1, 2)
const str = combine('1', '2')